<?php

class TICE_Controlador_Contato extends Zend_Controller_Action
{
	public
		$emailScript = 'email.phtml', // @var o script de renderização do e-mail
		$deEmail,
		$deNome,
		$paraEmail,
		$paraNome,
		$assunto,
		$debug = false,
		$configEmail = array(),
		$replyTo;
		
	function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array() ) {
		parent::__construct($request, $response, $invokeArgs);
    	$this->view->action = $this->view->baseUrl($this->getRequest()->getControllerName() . '/envia');
	}
	
	function preDispatch() {
		parent::preDispatch();
		$this->configEmail = array(
			'0' => array(
				'emailScript' => $this->emailScript,
				'deEmail' => $this->deEmail,
				'deNome' => $this->deNome,
				'paraEmail' => $this->paraEmail,
				'paraNome' => $this->paraNome,
				'assunto' => $this->assunto
			)
		);
	}
		
    public function indexAction()
    {
    	$this->view->mensagem = $this->_helper->FlashMessenger->getMessages();
    }
    public function enviaAction() {
    	$resultado = array();
    	$resultado['resultado'] = false;
    	try {
    		$dados = array();
    		if ($this->debug) {
    			$this->_helper->FlashMessenger('post: ' . json_encode($_POST));
    		}
    		foreach ($this->_getAllParams() as $chave => $param) {
    			$dados[$chave] = utf8_decode($param);
    		}
			unset($dados['controller']);unset($dados['action']);unset($dados['module']);
			
			$bootstrap = $this->getInvokeArg('bootstrap');
	 	   	$siteConfig = $bootstrap->getOption('site');
	    	$resources = $bootstrap->getOption('resources');
			$transportConfig = $resources['mail']['transport'];   
			
			$transport = new Zend_Mail_Transport_Smtp(
				$transportConfig['host'], 
				array(
					'port' => $transportConfig['port'], 
					'auth' => $transportConfig['auth'], 
					'username' => $transportConfig['username'],
					'password' => $transportConfig['password']
				)
			);
//			$transport = new Zend_Mail_Transport_Smtp('smtp.pc4.com.br', array ('port' => 587, 'auth' => 'login', 'username' => 'emanuel@pc4.com.br','password' => 'eman1425'));

			//$transport = new Zend_Mail_Transport_Sendmail();
    		foreach ($this->configEmail as $config){
	    		$mail = new Zend_Mail();
				
				$msg = $this->view->partial($config['emailScript'], array('titulo' => $config['assunto'], 'r' => $dados));
				
	    		if ($this->debug) {
	    			$this->_helper->FlashMessenger('emailScript: ' . $config['emailScript']);
	    			$this->_helper->FlashMessenger('msg: ' . json_encode($msg));
	    		}
				$mail->setBodyHtml($msg);
				if(!empty($config['deEmail'])){
					$mail->setFrom($config['deEmail'], $config['deNome']);
				}

				if (!empty($this->replyTo)) {
					$mail->setReplyTo($this->replyTo);
				}
				$mail->addTo($config['paraEmail'], $config['paraNome']);
				$mail->setSubject($config['assunto']);
				$mail->send($transport);
    		}
			$resultado['msg'] = 'Sua mensagem foi enviada com sucesso!';
    		$resultado['resultado'] = true;
    	}
    	catch (Exception $e) {
    		if ($this->debug) {
    			$resultado['msg'] = 'Erro: ' . $e->getMessage();
    		}
    		else {
    			$resultado['msg'] = 'Erro ao enviar e-mail!'  . $e->getMessage();
    		}
    	}
    	$this->resultado($resultado);
    }
    protected function resultado($resultado) {
    	$this->_helper->FlashMessenger($resultado['resultado']);
    	$this->_helper->FlashMessenger($resultado['msg']);
		$this->_redirect('contato/index');
    }
    
}

